Selective processing of damaged packets

ABSTRACT

When a damaged packet has been forwarded to or towards a destination terminal, a forwarding device or a destination terminal will determine if the packet is damaged, and if it is damaged, determine whether the content of the packet is time-sensitive. If the content is time-sensitive, the damage to the packet is assessed, and if possible, an attempt to repair the damage is made. Repair may include correcting the damaged data or packet, deciding to use the damaged data because the damage is minimal, or replacing all or a part of the damaged data with a normalized set of data. If repair is not possible and replacement of the damaged portion is not available or desirable, the packet is discarded.

CROSS-REFERENCE TO RELATED APPLICATION

The present application is a continuation of U.S. patent applicationSer. No. 10/742,196, which was filed on Dec. 19, 2003, the disclosure ofwhich is hereby incorporated by reference in its entirety.

FIELD OF THE INVENTION

The present invention relates to packet-based communications, and inparticular to selectively forwarding and processing packets that aredamaged, based on the type of content carried in the packet.

BACKGROUND OF THE INVENTION

In the emerging world of packet-based communications, packets areincreasingly being used to transport content of many types, includingstreaming media, which needs to be delivered in real time. As newtechnology, such as wireless local area networks (WLANs) and otheraccess technologies where the transmission path is subject todisturbances, become more prominent, the traditional rules for handlingdamaged packets may not be applicable for certain types of packetcontent.

Within the Internet Protocol and other link level protocols, packetshaving a checksum error, which is indicative of the packet being damagedin any fashion, are immediately discarded. In a wireless WLANenvironment, many packets that are damaged may have only a relativelysmall number of actual bit errors within the packet. If the packetcontent represents data, such as a bank balance, discarding the damagedpacket and requesting a retransmission of the packet is necessary,because retransmission of the packet is the only viable method forassuring that the data is accurately transferred. Further, the delay inreceiving the data due to retransmission has minimal if any negativeimpact on the data transfer.

In contrast, if the damaged packet is transporting streaming media thatshould be delivered in real time, such as audio, voice, or video, thedamaged bits within the packet will certainly have a negative impact,but the impact of a few errant bits may not be catastrophic. Since thedata is being used in real time, retransmission is relatively useless,because the order in which the packets arrive and their respectivedelays are critical in using and delivering the content. As such, thereis a need for new techniques in handling packets carrying time-sensitiveinformation wherein data integrity is less important than timelydelivery.

SUMMARY OF THE INVENTION

The present invention facilitates the processing of damaged packets,when the packets are carrying a certain type of content such asstreaming media or other time-sensitive information where data integrityis less important than timely delivery. Once a packet is received, adetermination is made as to whether the packet has been damaged. If thepacket is damaged, an attempt is made to determine the type of contentbeing carried by the packet and then a decision is made as to whether toforward the packet toward its destination or discard the packet, basedon the type of content and potentially the integrity of the packet. Whena damaged packet has been forwarded to or towards a destinationterminal, the forwarding device or the destination terminal willdetermine if the packet is damaged, and if it is damaged, determinewhether the content of the packet is time-sensitive. If the content istime-sensitive, the damage to the packet is assessed, and if possible,an attempt to repair the damage is made. Repair may include correctingthe damaged data or packet, deciding to use the damaged data because thedamage is minimal, or replacing all or a part of the damaged data with anormalized, interpolated, or extrapolated set of data. If repair is notpossible and replacement of the damaged portion is not available ordesirable, the packet is discarded.

Packet forwarding may be provided in any number of packet forwardingdevices ranging from edge devices facilitating communications withoriginating or destination terminals over an access network, tointermediate devices through which the packet is routed within a packetnetwork coupling the access networks. Each of the forwarding devices aswell as the destination terminal may provide the packet processing usedto correct the damaged packets or the data therein. The detection ofdamage and determination of content type may be made in the same ordifferent devices acting in coordination with each other for a givenpacket. Once a damaged packet has been discovered and a decision hasbeen made to route the packet toward the destination terminal, thepacket may be forwarded along a normal path as if it were undamaged, orsent over an alternative path that is better suited for handling damagedpackets. Any corrected, damaged, or replacement data will be used by thedestination terminal as if it were undamaged, when the damaged packethas been processed in an attempt to repair the damage. In an alternativeembodiment, the packet may be modified to include an indication that thepacket is damaged to assist devices in routing or processing the packet.

Those skilled in the art will appreciate the scope of the presentinvention and realize additional aspects thereof after reading thefollowing detailed description of the preferred embodiments inassociation with the accompanying drawing figures.

BRIEF DESCRIPTION OF THE DRAWING FIGURES

The accompanying drawing figures incorporated in and forming a part ofthis specification illustrate several aspects of the invention, andtogether with the description serve to explain the principles of theinvention.

FIG. 1 is a block representation of a communication environmentaccording to one embodiment of the present invention.

FIG. 2 is a flow diagram outlining a basic process for selectivelyforwarding damaged packets according to one embodiment of the presentinvention.

FIGS. 3A-3C illustrate a flow diagram outlining a basic process forselectively processing damaged packets in an attempt to repair thedamage according to one embodiment of the present invention.

FIG. 4 is a block representation of a forwarding device according to oneembodiment of the present invention.

FIG. 5 is a block representation of a destination terminal according toone embodiment of the present invention.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

The embodiments set forth below represent the necessary information toenable those skilled in the art to practice the invention and illustratethe best mode of practicing the invention. Upon reading the followingdescription in light of the accompanying drawing figures, those skilledin the art will understand the concepts of the invention and willrecognize applications of these concepts not particularly addressedherein. It should be understood that these concepts and applicationsfall within the scope of the disclosure and the accompanying claims.

Provided herein, damaged packets are selectively forwarded based on thetype of content carried therein and are subsequently received andprocessed to repair the damage. In a preferred embodiment, packetscarrying content in which the delivery is time-sensitive, such ascontent sensitive to latency, jitter, order of packet arrival, or otherparameters critical to proper reconstruction of streaming or real-timecontent, may be forwarded even though they are damaged, wherein packetsin which the integrity of the content is more critical than thetimeliness of delivery are dropped. The entity at the destination forthe packet or some intermediate entity along the path will then have theoption to attempt to repair the damage by correcting the damaged packetor data, deciding to use the damaged packet or data, or replacing all ora part of the damaged data in the damaged packet.

With reference to FIG. 1, a communication environment 10 is illustratedin which packets may be selectively forwarded and subsequently repairedwhen they are damaged instead of being discarded, based on the type ofcontent carried within the packet. The communication environment 10includes a packet network 12 and multiple access networks 14, whichcooperate to allow an originating terminal 16 to deliver packets to adestination terminal 18. The packet network 12 and the access networks14 will either include or be associated with any number of packetforwarding devices, which may include edge devices 20 that connect theaccess networks 14 to the packet network 12 and any number ofintermediate devices 22, which effectively forward the packetsthroughout the packet network 12 from one edge device 20 to another. Thepacket network 12 may also include an alternate processing device 24,which may optionally be implemented to process or forward damagedpackets in a defined fashion when the other packet forwarding devicesare not equipped to provide such functions. The alternate processingdevice 24 is described later in the description.

The communication environment 10 may take numerous forms, wherein thevarious packet forwarding devices may facilitate wireline or wirelesscommunications between each other as well as with the originating anddestination terminals 16, 18. For example, the access network 14 may bea cellular network or a wireless local area network. In such anembodiment, the edge device 20 may be a cellular network base station ormobile switching center, as well as a wireless local area network (WLAN)modem or like access point. Further, the edge devices 20 may beimplemented in various wireline-type devices, such as routers,firewalls, and servers. Those skilled in the art will recognize wirelessimplementations of the same. The intermediate devices 22 may take theform of a router, switch, or other entity acting as a forwarding liaisonbetween two other packet forwarding devices. The alternate processingdevice 24 may take similar forms.

Depending on the embodiment, the packets transported between theoriginating terminal 16 and the destination terminal 18 may includecontent of various types, including data or streaming media, such asaudio, video, and voice. Although those skilled in the art willrecognize other types of content, the content of a packet can normallybe broken into two types. A first type is data whose integrity cannot becompromised. As such, the integrity of the content takes priority. Thesecond type of content, such as streaming media, is more sensitive tothe time and order in which it is received than the integrity of thecontent itself. Although content integrity is important, packets thatare lost or discarded due to damage may prove more problematic than afew corrupt bits. Origins or destinations of content are not limited tothe edges of the access networks and can exist within the packet networkin devices such as media servers that are streaming or capturing contentas appropriate.

In contrast to the current practice of discarding any damaged packet,the packet forwarding devices operate to forward damaged packets whosecontent is of the type which is less sensitive to integrity and moresensitive to timely delivery. As a packet travels from the originatingterminal 16 to the destination terminal 18, various ones of the packetforwarding devices will be configured to determine whether a packet hasbeen damaged or otherwise corrupted. Instead of automatically droppingthe packet, the packet forwarding device will attempt to determine thetype of packet and either drop the packet in traditional fashion orforward the packet toward the destination terminal 18. In this manner,damaged packets having a select type of content may be forwarded insequential fashion through the packet network 12 and on to thedestination terminal 18. In one embodiment, certain packet forwardingdevices will systematically analyze the packet for damage, and determinewhether to forward the packet based on the content therein. The packetmay be forwarded without change or may be encapsulated in a new packet,which is then forwarded. Depending on the damage to the packet, it maybe possible to simply forward the packet unchanged (in this case thepacket may have an implicit indication that it is damaged in the form ofthe layer 2, IP and UDP checksums), thus ignoring the damage, orencapsulate the damaged packet as payload in a new undamaged packet.Alternatively, the first packet forwarding device to detect damage maymodify the packet to include some type of explicit indicia indicatingthe packet has been damaged and forward the packet on toward thedestination terminal 18, wherein subsequent packet forwarding deviceswill be able to determine that the packet is damaged but should beforwarded to the destination terminal 18 based on the damage indicia.

Any of the forwarding devices, as well as the destination terminal 18,may receive a damaged packet that was forwarded with the knowledge thatthe packet was damaged, and may attempt to repair the damage when thecontent is time-sensitive. Repairing the packet may include correctingthe damaged data, deciding to use the damaged data, or replacing all orpart of the damaged data. Once corrected, a forwarding deviceimplementing such repairs would forward the packet toward thedestination terminal 18 as if it were not damaged. Alternatively, if thedestination terminal 18 is the entity attempting to repair the damage,the data resulting from the repair attempt would be used as if therewere no damage. Accordingly, the destination terminal 18 may use damageddata, corrected data, or replacement data, depending on the type ofrepair provided during forwarding or at the destination terminal 18.

With reference to FIG. 2, an exemplary process for forwarding packetsaccording to one embodiment of the present invention is illustrated.Initially, the packet forwarding device will receive a packet en routeto the destination terminal 18 (step 100) and determine if the packet isdamaged (step 102). The damage to the packet may be in the header,payload, or both. One technique for determining damage is to compare thepacket with one or more of the checksums included within the packet.Notably, multiple checksums may be provided in the packet, whereindifferent checksums correspond to various protocol layers. Whendetermining if a packet is damaged, the checksums at the currently usedforwarding layer may be checked, as well as checksums at other layers.Those skilled in the art will recognize that any technique in which apacket can be analyzed for error may be used to determine that thepacket is damaged.

If the packet is damaged (step 104), and there is damage in the header(step 106), a determination is made to see if the damage in the headeris correctable (step 108). If the damage in the header cannot becorrected, the packet is discarded (step 110). If the header can becorrected, the header is corrected (step 112). If the header is notdamaged (step 106) or a damaged header has been corrected, the next stepdepends on whether or not the payload is damaged (step 114). If there isno damage to the payload of the packet (step 114), the packet isforwarded toward its destination (step 116). If the payload is damaged(step 114), the packet is analyzed to determine the type of contentcarried in the packet (step 118).

The type of content carried in the packet may be detected using numeroustechniques. For example, the type of protocol used for transport may bedeterminative of the content type. If the Real Time Protocol (RTP) isused, for example, the content type will likely be a streaming mediatype, which is more sensitive to timely delivery than data integrity.Although RTP is a Layer 3 protocol, the packet forwarding devicesoperating to forward the packets at a Layer 1 or Layer 2 protocol levelmay analyze other layers outside of the layer currently being used, inorder to detect or otherwise determine the type of content carried inthe packet. Further, certain protocols may include indicia indicative ofthe content type in the packet header or payload and at any protocollayer. Thus, the packet forwarding device may be configured to analyzethe packet for indicia indicative of content type. Further, wheninformation in the header is insufficient to determine content type, ananalysis of the configuration of the data carried within the packetcould also be used to determine content type. Those skilled in the artwill recognize that the content type may be determined by analyzing anypart of the packet and looking at any type of protocol used at any layerin the protocol stack to assist in determining content type, regardlessof the layer in which the packet is currently being processed.

If the content type cannot be determined due to the damage to thepacket, or if the content is not of the first type, which is sensitiveto timely delivery, or where integrity is imperative (step 120), thepacket is discarded (step 110) and the process repeats with the nextincoming packet. If the content is of a type that is sensitive to timelydelivery and less sensitive to integrity (step 120), the packet mayoptionally be encapsulated or marked as damaged by providing indiciaindicative of the packet being damaged (steps 122A and 1226) and thenthe packet is forwarded toward the destination terminal 18 (step 116).Notably, marking damaged packets is optional. When damaged packets arenot marked, each subsequent forwarding device will simply provide theabove process, alone or in combination with another device, to determinewhether the packet is damaged and whether the damaged packet should beforwarded toward the destination terminal 18. If the packets are marked,subsequent forwarding devices will preferably be able to detect theindicia used for marking and continue the forwarding process. Otherwise,the above process is repeated. If the damaged packet is encapsulated,subsequent forwarding devices will view the errant packet as the properpayload for the new packet and any repair will be made to the data inthe encapsulated packet.

Turning now to FIGS. 3A-3C, an exemplary process for handling damagedpackets that were forwarded toward the destination terminal 18 knowingthat the packets were damaged is shown. Initially, the packets arereceived (step 200) and analyzed to determine if they are damaged (step202). If a packet is damaged (step 204), the type of content carried bythe packet is determined, in a fashion similar to those described above(step 206). If the content is not of a first type, which is sensitive totimely delivery (step 208), the packet is discarded (step 210). If thecontent is of the first type, which is sensitive to timely delivery(step 208), the damage to the packet is assessed (step 212), and one ormore repair techniques are used to process the damaged packet, and inparticular the content carried by the packet.

The attempts to repair the damage may take the following forms. First,the damaged data may be analyzed in light of the type of content and anattempt to correct the damaged data may be made (step 214). Second, thedamaged data may be analyzed and a determination is made to use thedamaged data because the damage is minor (step 216). Such a decision maybe based on knowledge that the damage will not affect the use of thedata in light of the content or an ability to correct the damage is notavailable. Third, the damaged data may be replaced in whole or in partwith nominal data, which is known to minimize the impact of a lost ordamaged packet, or interpolated (or extrapolated) data determined fromother received data (step 218). As such, the replaced data is used asactual data by the destination terminal 18. For example, if the damageddata is voice content, the damaged data may be replaced by silence or adesirable tone, which is acceptable for providing to the user at thedestination terminal 18. Alternatively, an analysis of preceding andsubsequent data surrounding the damage may be used to effectivelyinterpolate new data to use in replacing the damaged data. Thesurrounding data may be found within the damaged packet or in otherpackets. Again, the processing to repair the damage associated with thepacket may include one or more of the above techniques, as well asothers deemed appropriate by those skilled in the art.

Once the repair processing has been provided, subsequent processingdepends on the location of the repair processing. If the repairprocessing is provided in the destination terminal 18 (FIG. 3B), thedestination terminal 18 may simply use the corrected, damaged, orreplacement data as if it were properly received data (step 220). If therepair processing takes place in a packet forwarding device (FIG. 3C),the processed packet is forwarded with the corrected, damaged, orreplacement data towards the destination terminal 18 (step 222). In thisinstance, the forwarded packet may or may not include indicia indicativeof the initially transmitted data being damaged, or the fact that arepair of the packet has been made or attempted.

When receiving a packet that is not damaged (step 204), the processingof the packet will again depend on whether processing takes place at thedestination terminal 18 or at one of the forwarding devices. If theprocessing takes place at the destination terminal 18 (FIG. 3B), thedata in the packet is simply used as necessary (step 224). If theprocessing takes place at a packet forwarding device (FIG. 3C), thepacket is forwarded toward the destination terminal in typical fashion(step 226).

The functionality described above may be distributed among multipledevices, wherein a first packet forwarding device, such as theintermediate device 22 or edge device 20, may determine that the packetis damaged, and then forward the packet to the alternate processingdevice 24 to determine whether the damaged packet should be forwardedtoward the destination terminal 18 or discarded. Processing for repairmay be distributed in a similar fashion. In addition to distributedprocessing, the packet forwarding devices may use alternate routes forrouting damaged packets that should be forwarded toward the destinationterminal 18 even though they are damaged. Using alternate routes isbeneficial when normal routes may not include packet forwarding devicescapable of forwarding damaged packets. As such, the alternate routes maybe those routes in which the packet forwarding devices are capable ofselectively forwarding damaged packets of the first type.

Turning now to FIG. 4, a packet forwarding or processing device isillustrated according to one embodiment of the present invention. Thepacket forwarding device will typically include a control system 26having memory 28 sufficient for storing software 30 configured toprovide the above functionality. The control system 26 is alsoassociated with one or more communication interfaces 32, depending onthe configuration of the packet forwarding device and its positionwithin the communication environment 10. For example, if the packetforwarding device is an edge device 20, the communication interfaces 32may include a first interface capable of receiving and transmittingpackets via the packet network 12, and a second interface forfacilitating communications with the originating or destination terminal16, 18 via an appropriate access network 14. The second communicationinterface 32 could be a cellular interface, WLAN interface, or wirelineinterface of various configurations. A packet forwarding deviceconfigured as an intermediate device 22 or alternate processing device24 may have one or more communication interfaces 32 configured totransmit packets back and forth between other intermediate devices 22and alternate processing devices 24, as well as the edge devices 20. Aspreviously described, the software providing the functionality fordetermining packet damage, determining what content is beingtransported, and repairing damaged packets can be distributed inmultiple coordinating devices, all of which may have the basic structureillustrated in FIG. 4.

With reference to FIG. 5, a destination terminal 18 is illustratedaccording to one embodiment of the present invention. The destinationterminal 18 will typically include a control system 34 having memory 36sufficient for storing software 38 configured to provide theabove-described functionality. The control system 34 is also associatedwith one or more communication interfaces 40, depending on theconfiguration of the destination terminal 18 and its position within thecommunication environment 10. For example, if the destination terminal18 is placed as illustrated in FIG. 1, the communication interface orinterfaces 40 will be capable of receiving and transmitting packets viathe access network 14 to and from an associated edge device 20. Thecommunication interface 40 could be a cellular interface, WLANinterface, or wireline interface of various configurations. Thedestination terminal 18 may also include a user interface 42 tofacilitate voice, audio, video, or data sessions with the user.

Although this disclosure has been described with reference to certainembodiments and generally associated methods, alterations andpermutations of these embodiments and methods may become apparentthrough the teachings of this disclosure. Accordingly, the abovedescription of example embodiments does not define or constrain thisdisclosure. Other changes, substitutions, improvements, modifications,and alterations are possible without departing from the spirit and scopeof this disclosure, as defined by the following claims.

What is claimed is:
 1. A method of handling a packet, comprising:determining whether the packet is a damaged packet or an undamagedpacket; when the packet is an undamaged packet, forwarding the packet ona first path for the packet determined based on forwarding informationin the packet; and when the packet is a damaged packet, forwarding thepacket on an second path which is different from the first path toward apacket handler configured to handle the damaged packet responsive todamage detected in the damaged packet.
 2. The method of claim 1,comprising marking the damaged packet as a damaged packet beforeforwarding the packet on the second path.
 3. The method of claim 1,wherein the packet handler is configured to handle the damaged packetresponsive to damage detected in the damaged packet so as to reducenegative impact of the damaged packet.
 4. The method of claim 1, whereinthe packet handler is configured to handle the damaged packet responsiveto damage detected in the damaged packet by repairing at least some ofthe damage detected in the damaged packet.
 5. The method of claim 1,wherein the packet handler is configured to handle the damaged packetresponsive to damage detected in the damaged packet by marking thedamaged packet.
 6. The method of claim 1, wherein the packet handler isconfigured to handle the damaged packet responsive to damage detected inthe damaged packet by discarding the damaged packet.
 7. The method ofclaim 1, wherein the packet handler is configured to handle the damagedpacket responsive to damage detected in the damaged packet by: assessingthe damage detected in the damaged packet; and forwarding the damagedpacket based on results of assessing the damage detected in the damagedpacket.
 8. The method of claim 1, wherein: determining whether thepacket is a damaged packet or an undamaged packet comprises determiningwhether a payload of the packet is damaged or undamaged; and forwardingthe packet on the second path comprises forwarding the packet toward apacket handler configured to ameliorate damage to the payload of thepacket.
 9. The method of claim 8, wherein processing the payload of thepacket to ameliorate damage to the payload comprises correcting errorsin the payload.
 10. The method of claim 8, wherein processing thepayload of the packet to ameliorate damage to the payload comprisesreplacing at least a portion of the damaged payload.
 11. The method ofclaim 8, wherein determining whether a payload of the packet is damagedor undamaged comprises comparing a checksum of the packet to a checksumencoded in the packet.
 12. The method of claim 11, wherein the packet isbeing forwarded in a first protocol layer and the checksum is providedin a second protocol layer different from the first protocol layer. 13.The method of claim 1, further comprising: determining whether thepacket has real-time content; and forwarding the packet on the secondpath only when the packet is a damaged packet having real-time content.14. The method of claim 13, wherein determining whether the packet hasreal-time content comprises determining whether the packet has real-timecontent based on a protocol being used to transport the content of thepacket.
 15. The method of claim 13, comprising, discarding the packetwhen the packet is determined to be a damaged packet not havingreal-time content.
 16. The method of claim 13, comprising requestingretransmission of the packet when the packet is determined to be adamaged packet not having real-time content.
 17. The method of claim 13,wherein real-time content comprises voice content.
 18. The method ofclaim 13, wherein real-time content comprises video content.
 19. Themethod of claim 13, wherein real-time content comprises audio content.20. The method of claim 13, wherein real-time content comprises streamedmedia content.
 21. The method of claim 1, performed at an edge node of apacket forwarding network.
 22. The method of claim 3, wherein the packetprocessor is located at an intermediate node of a packet forwardingnetwork.